package cn.fl.capital.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.capital.dto.CapPayeeInfoDTO;
import cn.fl.capital.vo.CapPayeeInfoVO;
import cn.cmm.base.framework.utils.CollectionUtils;

 /**
 * @Description: 付款收款方信息表 转换器
 * VO是客户端传递数据到服务端进行转换的数据 
 * VO转换数据变成DTO传递到服务端 
 * VO不能在服务端出现
 */
public class CapPayeeInfoVOTransform {


	/**
	 * DTO 转  VO
	 * @param dto CapPayeeInfoDTO
	 * @return CapPayeeInfoVO
	 */
	public static CapPayeeInfoVO toVO(CapPayeeInfoDTO dto) {
		CapPayeeInfoVO  vo = null;
		if (dto != null) { 
			vo = new CapPayeeInfoVO();
			vo.setId(dto.getId());
			vo.setPayId(dto.getPayId());//付款ID
			vo.setPayeeTypCd(dto.getPayeeTypCd());//收款方类型 1.供应商 2.承租人
			vo.setBkId(dto.getBkId());//供应商/承租人银行账户ID
			vo.setRcptUnt(dto.getRcptUnt());//收款单位/人
			vo.setAccNo(dto.getAccNo());//收款账号
			vo.setActPayAmt(dto.getActPayAmt());//实际付款金额
			vo.setActPayTm(dto.getActPayTm());//实际付款时间
			vo.setFundTypCd(dto.getFundTypCd());//款项：1.租赁物价款 2.保险费
			vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）
			vo.setPayeeBkNm(dto.getPayeeBkNm());//收款银行名称
			vo.setPayeeBkNo(dto.getPayeeBkNo());//收款银行开户行号
			vo.setPayWayCd(dto.getPayWayCd());//付款方式Cd
			vo.setPayWayCdNm(dto.getPayWayCdNm());//付款方式名称
			vo.setBkAccTypCd(dto.getBkAccTypCd());//账户类型Cd
			vo.setBkAccTypCdNm(dto.getBkAccTypCdNm());//账户类型
			vo.setPurpCd(dto.getPurpCd());
			vo.setPayAmt(dto.getPayAmt());

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			vo.setRealPayAmt(dto.getRealPayAmt());//真实付款金额
			vo.setPayerAccNo(dto.getPayerAccNo());
			vo.setPayerBkNm(dto.getPayerBkNm());
			vo.setPayerBkNo(dto.getPayerBkNo());
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param vo CapPayeeInfoVO
	 * @return CapPayeeInfoDTO
	 */
	public static CapPayeeInfoDTO toDTO(CapPayeeInfoVO vo) {
		CapPayeeInfoDTO dto = null;
		if (vo != null) {
			dto = new CapPayeeInfoDTO();
			dto.setId(vo.getId());
			dto.setPayId(vo.getPayId());//付款ID
			dto.setPayeeTypCd(vo.getPayeeTypCd());//收款方类型 1.供应商 2.承租人
			dto.setBkId(vo.getBkId());//供应商/承租人银行账户ID
			dto.setRcptUnt(vo.getRcptUnt());//收款单位/人
			dto.setAccNo(vo.getAccNo());//收款账号
			dto.setActPayAmt(vo.getActPayAmt());//实际付款金额
			dto.setActPayTm(vo.getActPayTm());//实际付款时间
			dto.setFundTypCd(vo.getFundTypCd());//款项：1.租赁物价款 2.保险费
			dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）
			dto.setPayeeBkNm(vo.getPayeeBkNm());//收款银行名称
			dto.setPayeeBkNo(vo.getPayeeBkNo());//收款银行开户行号
            dto.setPayWayCd(vo.getPayWayCd());//付款方式Cd
			dto.setBkAccTypCd(vo.getBkAccTypCd());//账户类型Cd
            dto.setPurpCd(vo.getPurpCd());
            dto.setPayAmt(vo.getPayAmt());

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			dto.setRealPayAmt(vo.getRealPayAmt());//真实付款金额
			dto.setPayerAccNo(vo.getPayerAccNo());
			dto.setPayerBkNm(vo.getPayerBkNm());
			dto.setPayerBkNo(vo.getPayerBkNo());
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param list List<CapPayeeInfo>
	 * @return List<CapPayeeInfoDTO>
	 */
	public static List<CapPayeeInfoVO> toVOList(List<CapPayeeInfoDTO> list) {
		List<CapPayeeInfoVO>  voList = new ArrayList<CapPayeeInfoVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (CapPayeeInfoDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}

	 /**
	  * VO集合 转 DTO集合
	  * @param list List<CapPayeeInfo>
	  * @return List<CapPayeeInfoDTO>
	  */
	 public static List<CapPayeeInfoDTO> toDTOList(List<CapPayeeInfoVO> list) {
		 List<CapPayeeInfoDTO>  dtoList = new ArrayList<CapPayeeInfoDTO>();
		 if(CollectionUtils.isNotEmpty(list)){
			 for (CapPayeeInfoVO vo : list) {
				 dtoList.add(toDTO(vo));
			 }
		 }
		 return dtoList;
	 }
}
